package com.apache;

import java.lang.reflect.InvocationTargetException;
import java.util.Map;

import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.beanutils.BeanUtils;

import com.vo.User;

public class TestBeanUtil {

	public static void main(String[] args) throws IllegalAccessException, InvocationTargetException {
		
		
//		User user = new User();
//		
//		user.setId(1);
//		user.setName("li");
//		//  Introspector 是一个专门处理bean的工具类.用来获取Bean体系里的 propertiesDescriptor,methodDescriptor.
////	    利用反射获取Method信息,是反射的上层. 
////	    性能优化: 只进行一次反射解析. 通过WeakReference静态类级别缓存Method, 在jvm不够时会被回收. 
//		
//		Map<String, Object> resMap = new BeanMap(user);  
//		
//		System.out.println(resMap);
//		
//		//存在效率问题
//		BeanUtils.populate(user, resMap);
////		无类型转换
//		BeanUtils.copyProperties(user, resMap);
		
	}
}
